package com.liqi.frame.comm.service;

import com.liqi.frame.comm.dto.OperationDto;

import java.util.List;

/**
 * 操作服务接口
 * @author liqi on 2017/12/20.
 * liqiwork@qq.com
 */
public interface OperationService {
    /**
     * 取得所有操作对象
     * @return 操作对象列表
     */
    List<OperationDto> getOperationList();

    /**
     * 取得指定用户的操作
     * @param userId 用户id
     * @return 操作对象列表
     */
    List<OperationDto> getOperationListByUserId(String userId);

    /**
     * 取得指定用户的操作
     * @param username 用户名称
     * @return 操作对象列表
     */
    List<OperationDto> getOperationListByUsername(String username);

    /**
     * 取得指定角色的操作
     * @param roleId 角色id
     * @return 操作对象列表
     */
    List<OperationDto> getOperationListByRoleId(String roleId);

    /**
     * 取得指定id的操作
     * @param id 操作id
     * @return 操作对象
     */
    OperationDto getOperationById(String id);

    /**
     * 按操作名称取得操作（模糊查询）
     * @param operationName 操作名称
     * @return 操作列表
     */
    List<OperationDto> getOperationListWithName(String operationName);

    /**
     * 取得当前用户的指定操作（模糊查询）
     * @param operationName 操作名称
     * @return 操作列表
     */
    List<OperationDto> getOperationListWithNameByCurrUser(String operationName);

    /**
     * 取得指定操作关键字的操作（精确查询）
     * @param operationKey 操作关键字
     * @return 操作
     */
    List<OperationDto> getOperationListByKey(String operationKey);

    /**
     * 插入操作信息
     * @param id 操作id
     * @param operationKey 操作关键字
     * @param operationName 操作名称
     * @param comment 说明
     * @param orderId 序号
     * @return 1：成功
     */
    int insertOperation(String id,
                        String operationKey,
                        String operationName,
                        String comment,
                        Float orderId);

    /**
     * 修改指定id的操作
     * @param id 操作id
     * @param operationKey 操作关键字
     * @param operationName 操作名称
     * @param comment 说明
     * @param orderId 序号
     * @return 修改结果
     */
    int updateOperation(String id,
                        String operationKey,
                        String operationName,
                        String comment,
                        Float orderId);

    /**
     * 删除指定id的操作
     * @param id 操作id
     * @return 删除结果
     */
    int deleteOperationById(String id);
}
